package top.huhuiyu.ds;

import java.io.File;

public class FileDemo {
  // D:\Develop\sts-bundle\sts-3.9.4.RELEASE
  // 显示文件夹中所有文件和文件夹，包括子目录，这个无法用循环解决
  /**
   * 
   * @param dir
   *          要显示的文件夹
   */
  public static void showDir(String dir) {
    try {
      // 第一步显示dir
      System.out.println("目录： "+dir);
      // 创建文件对象
      File dirinfo = new File(dir);
      // 获取目录里面的子目录和文件列表
      File[] files = dirinfo.listFiles();
      for (File file : files) {
        // 两种情况，一种是目录，一种是文件
        if (file.isDirectory()) {
          // getCanonicalPath方法返回是文件对象的本平台路径格式
          //System.out.println("目录:" + file.getCanonicalPath());
          //如果是目录，就递归解决(因为showDir就是显示子目录和文件)
          showDir(file.getCanonicalPath());
        } else {
          System.out.println("文件:" + file.getCanonicalPath());
        }
      }

    } catch (Exception e) {
      // 无视错误的情况

    }

  }

  public static void main(String[] args) {
    //作业一：显示成缩进格式
    FileDemo.showDir("D:\\Develop\\sts-bundle\\sts-3.9.4.RELEASE");
    //目录
    //  文件
    //  子目录
    //     文件
    //rm -rf/
  }

}
